/**
 * 递归大目录，重命名文件
 */
 const fs = require('fs')
 const path = require('path')
 deleteFile('D://重命名文件夹')
 // 获得目录
 function deleteFile(path,fname){
    fs.readdir(path,(err,files)=>{
     files.forEach(item=>{
         let pathName = path+'/'+item
         let stat = fs.lstatSync(pathName)
           // 判断是否是文件夹
         if(stat.isDirectory()){
             // 清除文件夹名的空格
             if(item.indexOf(' ')>-1){
               let newName = item.replace(' ','')
               fs.renameSync(`${path}/${item}`,`${path}/${newName}`)
               item = newName 
             }
             deleteFile(`${path}/${item}`,item)
             return
         }
      
         // 重命名
         if(fname) rename(item,path,fname)
        
     })
    })
 }
 
 function rename(name,path,fname){
     // 如果父名是以数字开头的跳过
     let n = fname.charAt(0)
     if(!isNaN(n)) return
     // 把所有的原先姓名去掉再加
     let reg = new RegExp(`(${fname}|${fname}-`,'gi')
     let newName = fname+'-'+ name.replace(reg,'')
     fs.renameSync(`${path}/${name}`,`${path}/${newName}`)
     fs.writeFileSync('./更改的文件名.txt',`\r\n${path}/${name} vs ${path}/${newName}`,{flag:'a'})
 }